package com.skyd.core.android.game;



/**
 * 游戏动画中的帧
 * 
 * @author SkyD
 * 
 */
public class GameAnimationFrame extends GameNodeObject implements IGameImageHolder {
	
	public GameAnimationFrame(){
		
	}
	
	public GameAnimationFrame(GameImage img){
		try {
			img.setParent(this);
		} catch (GameException e) {
			e.printStackTrace();
		}
		setImage(img);
	}
	
	/**
	 * 初始值为20。
	 * 功能注释：持续显示时间，单位为帧数，即游戏运行时的帧数。例如游戏定为每秒30帧，设定此值为15，则正常情况下实际显示时间就是0.5秒。
	 */
	private int _Duration = 20;

	/**
	 * 获取Duration。
	 * 功能注释：持续显示时间，单位为帧数，即游戏运行时的帧数。例如游戏定为每秒30帧，设定此值为15，则正常情况下实际显示时间就是0.5秒。
	 * 
	 * @return 当前的int类型的值
	 */
	public int getDuration() {
		return _Duration;
	}

	/**
	 * 设置Duration。
	 * 功能注释：持续显示时间，单位为帧数，即游戏运行时的帧数。例如游戏定为每秒30帧，设定此值为15，则正常情况下实际显示时间就是0.5秒。
	 * 
	 * @param value
	 *            要设置的int类型值
	 */
	public void setDuration(int value) {
		_Duration = value;
	}

	/**
	 * 设置Duration为其默认值(20)。
	 * 功能注释：持续显示时间，单位为帧数，即游戏运行时的帧数。例如游戏定为每秒30帧，设定此值为15，则正常情况下实际显示时间就是0.5秒。
	 */
	public void setDurationToDefault() {
		setDuration(20);
	}

	/**
	 * 初始值为null。 功能注释：显示的图像
	 */
	private GameImage _Image = null;

	/**
	 * 获取Image。 功能注释：显示的图像
	 * 
	 * @return 当前的GameImage类型的值
	 */
	public GameImage getImage() {
		return _Image;
	}

	/**
	 * 设置Image。 功能注释：显示的图像
	 * 
	 * @param value
	 *            要设置的GameImage类型值
	 */
	public void setImage(GameImage value) {
		try {
			value.setParent(this);
		} catch (GameException e) {
			e.printStackTrace();
		}
		_Image = value;
	}

	/**
	 * 设置Image为其默认值(null)。 功能注释：显示的图像
	 */
	public void setImageToDefault() {
		if (_Image != null) {
			try {
				_Image.setParentToDefault();
			} catch (GameException e) {
				e.printStackTrace();
			}
			setImage(null);
		}
	}

	@Override
	public GameObject getDisplayContentChild() {
		return getImage();
	}

	@Override
	public GameImage getDisplayImage() {
		return getImage();
	}

}
